package com.zxx.pattern.statePattern.state3.sample;

import android.content.Context;

/**
 * 用户接口 和 状态管理类
 * 将相关操作委托给状态对象，这样状态改变时，此处的行为也将改变
 * 通过setState修改状态--将操作委托给状态对象。不同的状态对象对于同一个操作进行不同的处理
 *
 * @author zxx on 2021/1/20
 */
public class LoginContext {

    //用户状态，设为默认状态
    UserState mState = new LogoutState();

    //单例：饿汉
    private static LoginContext loginContext = new LoginContext();

    private LoginContext() {
    }

    public static LoginContext getLoginContext() {
        return loginContext;
    }

    public void setState(UserState mState) {
        this.mState = mState;
    }

    public void forward(Context context) {
        mState.forward(context);
    }

    public void comment(Context context) {
        mState.comment(context);
    }

}
